package hashSet.book;

import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

/**
 * 键盘输入n本书,按照价格从低到高排序后输出,如果价格相同则按照书名的自然顺序排序;
 * <p>
 * **要求:**
 * <p>
 * 1:书以对象形式存在,包含书名和价格(int类型)两个属性;
 * <p>
 * 2:要求即使直接打印书对象的时候,也能看到书的名称和价格,而不是书对象的地址值;
 * <p>
 * 3:分别使用自然排序和比较器排序实现效果;
 */

public class BookTest {
    public static void main(String[] args) {
        TreeSet<Book> bookTreeSet = new TreeSet<>(new Comparator<Book>() {
            @Override
            public int compare(Book o1, Book o2) {
                int result = o1.getPrice() - o2.getPrice();
                result = result == 0 ? o1.getBookName().compareTo(o2.getBookName()) : result;
                return result;
            }
        });
        Scanner scanner = new Scanner(System.in);
        int i = 1;
        while (true) {
            System.out.println("请输入第" + i + "本书的名称");
            String bookName = scanner.next();

            System.out.println("请输入第" + i + "本书的价格(整数)");
            int price = scanner.nextInt();

            bookTreeSet.add(new Book(bookName, price));
            i++;

            System.out.println("添加" + bookName + "书已经成功,继续添加请按1,输入其他数字将结束!");
            String res = scanner.next();
            if (!"1".equals(res)) {
                break;
            }
        }
        System.out.println(bookTreeSet);
    }
}
